package com.njcb.ams.orm.entity;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class ProjectInfoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProjectInfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("ID is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("ID is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("ID =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("ID <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("ID >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("ID >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("ID <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("ID <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("ID in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("ID not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("ID between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("ID not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andRequireNoIsNull() {
            addCriterion("REQUIRE_NO is null");
            return (Criteria) this;
        }

        public Criteria andRequireNoIsNotNull() {
            addCriterion("REQUIRE_NO is not null");
            return (Criteria) this;
        }

        public Criteria andRequireNoEqualTo(String value) {
            addCriterion("REQUIRE_NO =", value, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoNotEqualTo(String value) {
            addCriterion("REQUIRE_NO <>", value, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoGreaterThan(String value) {
            addCriterion("REQUIRE_NO >", value, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoGreaterThanOrEqualTo(String value) {
            addCriterion("REQUIRE_NO >=", value, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoLessThan(String value) {
            addCriterion("REQUIRE_NO <", value, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoLessThanOrEqualTo(String value) {
            addCriterion("REQUIRE_NO <=", value, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoLike(String value) {
            addCriterion("REQUIRE_NO like", value, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoNotLike(String value) {
            addCriterion("REQUIRE_NO not like", value, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoIn(List<String> values) {
            addCriterion("REQUIRE_NO in", values, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoNotIn(List<String> values) {
            addCriterion("REQUIRE_NO not in", values, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoBetween(String value1, String value2) {
            addCriterion("REQUIRE_NO between", value1, value2, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNoNotBetween(String value1, String value2) {
            addCriterion("REQUIRE_NO not between", value1, value2, "requireNo");
            return (Criteria) this;
        }

        public Criteria andRequireNameIsNull() {
            addCriterion("REQUIRE_NAME is null");
            return (Criteria) this;
        }

        public Criteria andRequireNameIsNotNull() {
            addCriterion("REQUIRE_NAME is not null");
            return (Criteria) this;
        }

        public Criteria andRequireNameEqualTo(String value) {
            addCriterion("REQUIRE_NAME =", value, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameNotEqualTo(String value) {
            addCriterion("REQUIRE_NAME <>", value, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameGreaterThan(String value) {
            addCriterion("REQUIRE_NAME >", value, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameGreaterThanOrEqualTo(String value) {
            addCriterion("REQUIRE_NAME >=", value, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameLessThan(String value) {
            addCriterion("REQUIRE_NAME <", value, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameLessThanOrEqualTo(String value) {
            addCriterion("REQUIRE_NAME <=", value, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameLike(String value) {
            addCriterion("REQUIRE_NAME like", value, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameNotLike(String value) {
            addCriterion("REQUIRE_NAME not like", value, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameIn(List<String> values) {
            addCriterion("REQUIRE_NAME in", values, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameNotIn(List<String> values) {
            addCriterion("REQUIRE_NAME not in", values, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameBetween(String value1, String value2) {
            addCriterion("REQUIRE_NAME between", value1, value2, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireNameNotBetween(String value1, String value2) {
            addCriterion("REQUIRE_NAME not between", value1, value2, "requireName");
            return (Criteria) this;
        }

        public Criteria andRequireTypeIsNull() {
            addCriterion("REQUIRE_TYPE is null");
            return (Criteria) this;
        }

        public Criteria andRequireTypeIsNotNull() {
            addCriterion("REQUIRE_TYPE is not null");
            return (Criteria) this;
        }

        public Criteria andRequireTypeEqualTo(String value) {
            addCriterion("REQUIRE_TYPE =", value, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeNotEqualTo(String value) {
            addCriterion("REQUIRE_TYPE <>", value, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeGreaterThan(String value) {
            addCriterion("REQUIRE_TYPE >", value, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeGreaterThanOrEqualTo(String value) {
            addCriterion("REQUIRE_TYPE >=", value, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeLessThan(String value) {
            addCriterion("REQUIRE_TYPE <", value, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeLessThanOrEqualTo(String value) {
            addCriterion("REQUIRE_TYPE <=", value, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeLike(String value) {
            addCriterion("REQUIRE_TYPE like", value, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeNotLike(String value) {
            addCriterion("REQUIRE_TYPE not like", value, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeIn(List<String> values) {
            addCriterion("REQUIRE_TYPE in", values, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeNotIn(List<String> values) {
            addCriterion("REQUIRE_TYPE not in", values, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeBetween(String value1, String value2) {
            addCriterion("REQUIRE_TYPE between", value1, value2, "requireType");
            return (Criteria) this;
        }

        public Criteria andRequireTypeNotBetween(String value1, String value2) {
            addCriterion("REQUIRE_TYPE not between", value1, value2, "requireType");
            return (Criteria) this;
        }

        public Criteria andIsProjectIsNull() {
            addCriterion("IS_PROJECT is null");
            return (Criteria) this;
        }

        public Criteria andIsProjectIsNotNull() {
            addCriterion("IS_PROJECT is not null");
            return (Criteria) this;
        }

        public Criteria andIsProjectEqualTo(String value) {
            addCriterion("IS_PROJECT =", value, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectNotEqualTo(String value) {
            addCriterion("IS_PROJECT <>", value, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectGreaterThan(String value) {
            addCriterion("IS_PROJECT >", value, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectGreaterThanOrEqualTo(String value) {
            addCriterion("IS_PROJECT >=", value, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectLessThan(String value) {
            addCriterion("IS_PROJECT <", value, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectLessThanOrEqualTo(String value) {
            addCriterion("IS_PROJECT <=", value, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectLike(String value) {
            addCriterion("IS_PROJECT like", value, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectNotLike(String value) {
            addCriterion("IS_PROJECT not like", value, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectIn(List<String> values) {
            addCriterion("IS_PROJECT in", values, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectNotIn(List<String> values) {
            addCriterion("IS_PROJECT not in", values, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectBetween(String value1, String value2) {
            addCriterion("IS_PROJECT between", value1, value2, "isProject");
            return (Criteria) this;
        }

        public Criteria andIsProjectNotBetween(String value1, String value2) {
            addCriterion("IS_PROJECT not between", value1, value2, "isProject");
            return (Criteria) this;
        }

        public Criteria andBudgetIsNull() {
            addCriterion("BUDGET is null");
            return (Criteria) this;
        }

        public Criteria andBudgetIsNotNull() {
            addCriterion("BUDGET is not null");
            return (Criteria) this;
        }

        public Criteria andBudgetEqualTo(BigDecimal value) {
            addCriterion("BUDGET =", value, "budget");
            return (Criteria) this;
        }

        public Criteria andBudgetNotEqualTo(BigDecimal value) {
            addCriterion("BUDGET <>", value, "budget");
            return (Criteria) this;
        }

        public Criteria andBudgetGreaterThan(BigDecimal value) {
            addCriterion("BUDGET >", value, "budget");
            return (Criteria) this;
        }

        public Criteria andBudgetGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("BUDGET >=", value, "budget");
            return (Criteria) this;
        }

        public Criteria andBudgetLessThan(BigDecimal value) {
            addCriterion("BUDGET <", value, "budget");
            return (Criteria) this;
        }

        public Criteria andBudgetLessThanOrEqualTo(BigDecimal value) {
            addCriterion("BUDGET <=", value, "budget");
            return (Criteria) this;
        }

        public Criteria andBudgetIn(List<BigDecimal> values) {
            addCriterion("BUDGET in", values, "budget");
            return (Criteria) this;
        }

        public Criteria andBudgetNotIn(List<BigDecimal> values) {
            addCriterion("BUDGET not in", values, "budget");
            return (Criteria) this;
        }

        public Criteria andBudgetBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("BUDGET between", value1, value2, "budget");
            return (Criteria) this;
        }

        public Criteria andBudgetNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("BUDGET not between", value1, value2, "budget");
            return (Criteria) this;
        }

        public Criteria andDepartmentIsNull() {
            addCriterion("DEPARTMENT is null");
            return (Criteria) this;
        }

        public Criteria andDepartmentIsNotNull() {
            addCriterion("DEPARTMENT is not null");
            return (Criteria) this;
        }

        public Criteria andDepartmentEqualTo(String value) {
            addCriterion("DEPARTMENT =", value, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentNotEqualTo(String value) {
            addCriterion("DEPARTMENT <>", value, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentGreaterThan(String value) {
            addCriterion("DEPARTMENT >", value, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentGreaterThanOrEqualTo(String value) {
            addCriterion("DEPARTMENT >=", value, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentLessThan(String value) {
            addCriterion("DEPARTMENT <", value, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentLessThanOrEqualTo(String value) {
            addCriterion("DEPARTMENT <=", value, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentLike(String value) {
            addCriterion("DEPARTMENT like", value, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentNotLike(String value) {
            addCriterion("DEPARTMENT not like", value, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentIn(List<String> values) {
            addCriterion("DEPARTMENT in", values, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentNotIn(List<String> values) {
            addCriterion("DEPARTMENT not in", values, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentBetween(String value1, String value2) {
            addCriterion("DEPARTMENT between", value1, value2, "department");
            return (Criteria) this;
        }

        public Criteria andDepartmentNotBetween(String value1, String value2) {
            addCriterion("DEPARTMENT not between", value1, value2, "department");
            return (Criteria) this;
        }

        public Criteria andSubdepartIsNull() {
            addCriterion("SUBDEPART is null");
            return (Criteria) this;
        }

        public Criteria andSubdepartIsNotNull() {
            addCriterion("SUBDEPART is not null");
            return (Criteria) this;
        }

        public Criteria andSubdepartEqualTo(String value) {
            addCriterion("SUBDEPART =", value, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartNotEqualTo(String value) {
            addCriterion("SUBDEPART <>", value, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartGreaterThan(String value) {
            addCriterion("SUBDEPART >", value, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartGreaterThanOrEqualTo(String value) {
            addCriterion("SUBDEPART >=", value, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartLessThan(String value) {
            addCriterion("SUBDEPART <", value, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartLessThanOrEqualTo(String value) {
            addCriterion("SUBDEPART <=", value, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartLike(String value) {
            addCriterion("SUBDEPART like", value, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartNotLike(String value) {
            addCriterion("SUBDEPART not like", value, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartIn(List<String> values) {
            addCriterion("SUBDEPART in", values, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartNotIn(List<String> values) {
            addCriterion("SUBDEPART not in", values, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartBetween(String value1, String value2) {
            addCriterion("SUBDEPART between", value1, value2, "subdepart");
            return (Criteria) this;
        }

        public Criteria andSubdepartNotBetween(String value1, String value2) {
            addCriterion("SUBDEPART not between", value1, value2, "subdepart");
            return (Criteria) this;
        }

        public Criteria andPmIsNull() {
            addCriterion("PM is null");
            return (Criteria) this;
        }

        public Criteria andPmIsNotNull() {
            addCriterion("PM is not null");
            return (Criteria) this;
        }

        public Criteria andPmEqualTo(String value) {
            addCriterion("PM =", value, "pm");
            return (Criteria) this;
        }

        public Criteria andPmNotEqualTo(String value) {
            addCriterion("PM <>", value, "pm");
            return (Criteria) this;
        }

        public Criteria andPmGreaterThan(String value) {
            addCriterion("PM >", value, "pm");
            return (Criteria) this;
        }

        public Criteria andPmGreaterThanOrEqualTo(String value) {
            addCriterion("PM >=", value, "pm");
            return (Criteria) this;
        }

        public Criteria andPmLessThan(String value) {
            addCriterion("PM <", value, "pm");
            return (Criteria) this;
        }

        public Criteria andPmLessThanOrEqualTo(String value) {
            addCriterion("PM <=", value, "pm");
            return (Criteria) this;
        }

        public Criteria andPmLike(String value) {
            addCriterion("PM like", value, "pm");
            return (Criteria) this;
        }

        public Criteria andPmNotLike(String value) {
            addCriterion("PM not like", value, "pm");
            return (Criteria) this;
        }

        public Criteria andPmIn(List<String> values) {
            addCriterion("PM in", values, "pm");
            return (Criteria) this;
        }

        public Criteria andPmNotIn(List<String> values) {
            addCriterion("PM not in", values, "pm");
            return (Criteria) this;
        }

        public Criteria andPmBetween(String value1, String value2) {
            addCriterion("PM between", value1, value2, "pm");
            return (Criteria) this;
        }

        public Criteria andPmNotBetween(String value1, String value2) {
            addCriterion("PM not between", value1, value2, "pm");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentIsNull() {
            addCriterion("PM_DEPARTMENT is null");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentIsNotNull() {
            addCriterion("PM_DEPARTMENT is not null");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentEqualTo(String value) {
            addCriterion("PM_DEPARTMENT =", value, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentNotEqualTo(String value) {
            addCriterion("PM_DEPARTMENT <>", value, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentGreaterThan(String value) {
            addCriterion("PM_DEPARTMENT >", value, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentGreaterThanOrEqualTo(String value) {
            addCriterion("PM_DEPARTMENT >=", value, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentLessThan(String value) {
            addCriterion("PM_DEPARTMENT <", value, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentLessThanOrEqualTo(String value) {
            addCriterion("PM_DEPARTMENT <=", value, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentLike(String value) {
            addCriterion("PM_DEPARTMENT like", value, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentNotLike(String value) {
            addCriterion("PM_DEPARTMENT not like", value, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentIn(List<String> values) {
            addCriterion("PM_DEPARTMENT in", values, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentNotIn(List<String> values) {
            addCriterion("PM_DEPARTMENT not in", values, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentBetween(String value1, String value2) {
            addCriterion("PM_DEPARTMENT between", value1, value2, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andPmDepartmentNotBetween(String value1, String value2) {
            addCriterion("PM_DEPARTMENT not between", value1, value2, "pmDepartment");
            return (Criteria) this;
        }

        public Criteria andMainSystemIsNull() {
            addCriterion("MAIN_SYSTEM is null");
            return (Criteria) this;
        }

        public Criteria andMainSystemIsNotNull() {
            addCriterion("MAIN_SYSTEM is not null");
            return (Criteria) this;
        }

        public Criteria andMainSystemEqualTo(String value) {
            addCriterion("MAIN_SYSTEM =", value, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemNotEqualTo(String value) {
            addCriterion("MAIN_SYSTEM <>", value, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemGreaterThan(String value) {
            addCriterion("MAIN_SYSTEM >", value, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemGreaterThanOrEqualTo(String value) {
            addCriterion("MAIN_SYSTEM >=", value, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemLessThan(String value) {
            addCriterion("MAIN_SYSTEM <", value, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemLessThanOrEqualTo(String value) {
            addCriterion("MAIN_SYSTEM <=", value, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemLike(String value) {
            addCriterion("MAIN_SYSTEM like", value, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemNotLike(String value) {
            addCriterion("MAIN_SYSTEM not like", value, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemIn(List<String> values) {
            addCriterion("MAIN_SYSTEM in", values, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemNotIn(List<String> values) {
            addCriterion("MAIN_SYSTEM not in", values, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemBetween(String value1, String value2) {
            addCriterion("MAIN_SYSTEM between", value1, value2, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andMainSystemNotBetween(String value1, String value2) {
            addCriterion("MAIN_SYSTEM not between", value1, value2, "mainSystem");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("STATUS is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("STATUS is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion("STATUS =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion("STATUS <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion("STATUS >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion("STATUS >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion("STATUS <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion("STATUS <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLike(String value) {
            addCriterion("STATUS like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotLike(String value) {
            addCriterion("STATUS not like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<String> values) {
            addCriterion("STATUS in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<String> values) {
            addCriterion("STATUS not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion("STATUS between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion("STATUS not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andCommentsIsNull() {
            addCriterion("COMMENTS is null");
            return (Criteria) this;
        }

        public Criteria andCommentsIsNotNull() {
            addCriterion("COMMENTS is not null");
            return (Criteria) this;
        }

        public Criteria andCommentsEqualTo(String value) {
            addCriterion("COMMENTS =", value, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsNotEqualTo(String value) {
            addCriterion("COMMENTS <>", value, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsGreaterThan(String value) {
            addCriterion("COMMENTS >", value, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsGreaterThanOrEqualTo(String value) {
            addCriterion("COMMENTS >=", value, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsLessThan(String value) {
            addCriterion("COMMENTS <", value, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsLessThanOrEqualTo(String value) {
            addCriterion("COMMENTS <=", value, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsLike(String value) {
            addCriterion("COMMENTS like", value, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsNotLike(String value) {
            addCriterion("COMMENTS not like", value, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsIn(List<String> values) {
            addCriterion("COMMENTS in", values, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsNotIn(List<String> values) {
            addCriterion("COMMENTS not in", values, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsBetween(String value1, String value2) {
            addCriterion("COMMENTS between", value1, value2, "comments");
            return (Criteria) this;
        }

        public Criteria andCommentsNotBetween(String value1, String value2) {
            addCriterion("COMMENTS not between", value1, value2, "comments");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerIsNull() {
            addCriterion("CURRENT_HANDLER is null");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerIsNotNull() {
            addCriterion("CURRENT_HANDLER is not null");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerEqualTo(String value) {
            addCriterion("CURRENT_HANDLER =", value, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerNotEqualTo(String value) {
            addCriterion("CURRENT_HANDLER <>", value, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerGreaterThan(String value) {
            addCriterion("CURRENT_HANDLER >", value, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerGreaterThanOrEqualTo(String value) {
            addCriterion("CURRENT_HANDLER >=", value, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerLessThan(String value) {
            addCriterion("CURRENT_HANDLER <", value, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerLessThanOrEqualTo(String value) {
            addCriterion("CURRENT_HANDLER <=", value, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerLike(String value) {
            addCriterion("CURRENT_HANDLER like", value, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerNotLike(String value) {
            addCriterion("CURRENT_HANDLER not like", value, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerIn(List<String> values) {
            addCriterion("CURRENT_HANDLER in", values, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerNotIn(List<String> values) {
            addCriterion("CURRENT_HANDLER not in", values, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerBetween(String value1, String value2) {
            addCriterion("CURRENT_HANDLER between", value1, value2, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andCurrentHandlerNotBetween(String value1, String value2) {
            addCriterion("CURRENT_HANDLER not between", value1, value2, "currentHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerIsNull() {
            addCriterion("NEXT_HANDLER is null");
            return (Criteria) this;
        }

        public Criteria andNextHandlerIsNotNull() {
            addCriterion("NEXT_HANDLER is not null");
            return (Criteria) this;
        }

        public Criteria andNextHandlerEqualTo(String value) {
            addCriterion("NEXT_HANDLER =", value, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerNotEqualTo(String value) {
            addCriterion("NEXT_HANDLER <>", value, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerGreaterThan(String value) {
            addCriterion("NEXT_HANDLER >", value, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerGreaterThanOrEqualTo(String value) {
            addCriterion("NEXT_HANDLER >=", value, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerLessThan(String value) {
            addCriterion("NEXT_HANDLER <", value, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerLessThanOrEqualTo(String value) {
            addCriterion("NEXT_HANDLER <=", value, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerLike(String value) {
            addCriterion("NEXT_HANDLER like", value, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerNotLike(String value) {
            addCriterion("NEXT_HANDLER not like", value, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerIn(List<String> values) {
            addCriterion("NEXT_HANDLER in", values, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerNotIn(List<String> values) {
            addCriterion("NEXT_HANDLER not in", values, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerBetween(String value1, String value2) {
            addCriterion("NEXT_HANDLER between", value1, value2, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andNextHandlerNotBetween(String value1, String value2) {
            addCriterion("NEXT_HANDLER not between", value1, value2, "nextHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerIsNull() {
            addCriterion("LAST_HANDLER is null");
            return (Criteria) this;
        }

        public Criteria andLastHandlerIsNotNull() {
            addCriterion("LAST_HANDLER is not null");
            return (Criteria) this;
        }

        public Criteria andLastHandlerEqualTo(String value) {
            addCriterion("LAST_HANDLER =", value, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerNotEqualTo(String value) {
            addCriterion("LAST_HANDLER <>", value, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerGreaterThan(String value) {
            addCriterion("LAST_HANDLER >", value, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerGreaterThanOrEqualTo(String value) {
            addCriterion("LAST_HANDLER >=", value, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerLessThan(String value) {
            addCriterion("LAST_HANDLER <", value, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerLessThanOrEqualTo(String value) {
            addCriterion("LAST_HANDLER <=", value, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerLike(String value) {
            addCriterion("LAST_HANDLER like", value, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerNotLike(String value) {
            addCriterion("LAST_HANDLER not like", value, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerIn(List<String> values) {
            addCriterion("LAST_HANDLER in", values, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerNotIn(List<String> values) {
            addCriterion("LAST_HANDLER not in", values, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerBetween(String value1, String value2) {
            addCriterion("LAST_HANDLER between", value1, value2, "lastHandler");
            return (Criteria) this;
        }

        public Criteria andLastHandlerNotBetween(String value1, String value2) {
            addCriterion("LAST_HANDLER not between", value1, value2, "lastHandler");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}